import { createApp } from 'vue'
import App from './App.vue'
import router from './router'

import test from './components/test.vue'

// 设置 indexedDB 数据库，存放文档的各种信息。
import {
  config,
  setupIndexedDB,
  setupStore
  // getMarkdownEditor, // 获取 edit 的组件
  // getMarkdownView // 获取 view 的组件
} from '/nf-press-edit'

// 初始化 indexedDB 数据库
setupIndexedDB()

// 设置目录导航的组件，不设置会采用默认组件
// config.myCata = test
  
// UI库
import ElementPlus from 'element-plus'
// import 'element-plus/lib/theme-chalk/index.css'
// import 'dayjs/locale/zh-cn'
import zhCn from 'element-plus/es/locale/lang/zh-cn'

// 二次封装
import { nfElementPlus, dialogDrag } from '@naturefw/ui-elp'
// 设置icon
import installIcon from './icon/index.js'

// 设置 Markdown 的配置函数
import setMarkDown from './main-md.js'

// vuepress 主题
import vuepressTheme from '@kangc/v-md-editor/lib/theme/vuepress.js'

const {  VueMarkdownEditor,  VMdPreview } = setMarkDown(vuepressTheme)

// Markdown 的编辑器
// const VueMarkdownEditor = getMarkdownEditor(vuepressTheme)
// Markdown 的浏览器
// const VMdPreview = getMarkdownView(vuepressTheme)


const app = createApp(App)
// app.config.globalProperties.$ELEMENT = {
//  locale: zhCn,
//  size: 'small'
// }

app.use(setupStore) // 状态管理
  .use(router) // 需要加载组件的路由
  .use(nfElementPlus) // 二次封装的组件
  // .use(dialogDrag)
  .use(installIcon) // 注册全局图标
  // .use(ElementPlus, { locale: zhCn, size: 'small' }) // UI库
  .use(VueMarkdownEditor) // markDown编辑器
  .use(VMdPreview) // markDown 显示
  .mount('#app')
